<?php #title=Каталог;
/*DEE_DESC
$templ['title']='Каталог';
 DEE_DESC_END */

 	$view->js('admin/store');

	$msg_update_price = '';
	$info_import = array( 'message' => '', 'codes' => array() );

	
//------Обновление слубной информации у товаров
	
	$update_price = 'update_price';  // Название post файла для обновления прайса
	
	$fields = array(
				'Артикул'				=> array( 'field' => 'artikul',			'type' => 'int' ),
				'Корсини'				=> array( 'field' => 'corsini',			'type' => 'int' ),
				'Цена'					=> array( 'field' => 'price_retail',	'type' => 'int' ),
				'ПП'					=> array( 'field' => 'pp',				'type' => 'int' ),
				'ПМ'					=> array( 'field' => 'pm',				'type' => 'int' ),
				'ПД'					=> array( 'field' => 'pd',				'type' => 'int' ),
				'БИД'					=> array( 'field' => 'bid',				'type' => 'text' ),
				'ЦБИД'					=> array( 'field' => 'cbid',			'type' => 'text' ),
				'Стоимость монтажа'		=> array( 'field' => 'price_inst',		'type' => 'int' ),
				'Стоимость vip'			=> array( 'field' => 'price_vip',		'type' => 'int' ),
				'Габаритность'			=> array( 'field' => 'volume',			'type' => 'int' ),
				'Хиты'					=> array( 'field' => 'hit',				'type' => 'int' ),
				'Новинки'				=> array( 'field' => 'new',				'type' => 'int' ),
				'Распродажа'			=> array( 'field' => 'sale',			'type' => 'int' ),
				'Аксессуары'			=> array( 'field' => 'accessories',		'type' => 'text' ),
				'Похожие товары'		=> array( 'field' => 'similar',			'type' => 'text' ),
				'Код Корсини'			=> array( 'field' => 'corsini_code',	'type' => 'int' ),
				'Код Маркета'			=> array( 'field' => 'market_code',		'type' => 'int' ),
				'Наименование маркета'	=> array( 'field' => 'market_name',		'type' => 'text' ),
				'sales_notes'			=> array( 'field' => 'sales_notes',		'type' => 'text' ),
				'Телефон'				=> array( 'field' => 'phone',			'type' => 'text' ),
				'Описание'				=> array( 'field' => 'description',		'type' => 'text' ),
				'Производитель'		=> array( 'field' => 'country_of_origin',		'type' => 'text' ),
				'Гарантия'			=> array( 'field' => 'manufacturer_warranty',		'type' => 'text' )
			);
		
	if( checkCameCsvFile( $update_price ) )  // Если пришел файл для обновления, то стартуем
		$msg_update_price = startUpdateServices( $update_price, $fields );
		
		$alert = 'Внимание! В данном разделе произошли изменения. Теперь обновлять служебки можно не только по Артиклю, но и по Коду Корсини. Чтобы обновить товары по Коду Корсини, нужно просто первый столец обозвать словом Корсини, и заполнить этот столбец Кодами корсини. Остальные правила остались без изменений. Советуем ознакомиться с данными правилами раскрыв спойлер "Правила по структуре загружаемого csv файла..."';
	
	$pr_update_price_html = '	
		<div class="export-xml">
			<h2>Обновление служебных признаков товаров</h2>
			<div class="main_span_info">
				<span class="span_info">Правила по структуре загружаемого csv файла...</span>
				<div class="div_info">
					Кодировка - "Кириллица (Windows-1251)"<br />
					Разделитель поля - ","<br />
					<span class="red_str"><b>'.$alert.'</b></span><br/>
					Если оставить значение какого-либо поля пустым, то данное значение в БД остается неизменным.<br />
					Очередность полей соблюдать не обязательно. Главное чтобы название столбца совпадало с любым пунктом из списка ниже:<br/>
					<b>'.implode( ', ', array_keys( $fields ) ).'</b><br/><br/>
					1. Если указать букву <b>n</b> в поле ПП, то товар пропадет из показа на сайте, но всегда будет доступен по прямой ссылке.<br/>
					2. Если указать значение 0 в поля Габаритность, Стоимость монатжа и VIP сервиса то данные услуги отобразятся как Бесплатно.<br/>
					   &nbsp;&nbsp;&nbsp;&nbsp;Удалить эти значения можно буквой <b>n</b>.<br/>
					3. Если указать в полях Аксессуары, Похожие товары, Код Корсини, ID Маркета, Наименование маркета букву <b>n</b>, то значение удалится из БД.<br/>
					<b>После отработки скрипта обновлять файла для Яндек.Маркет не обязательно - это происходит автоматически.</b>
				</div>
			</div>
			<form  ENCTYPE="multipart/form-data" action="" method="POST">
				<p><input type="file" name="'.$update_price.'" /></p>
				<!--<p>
					<b>Выберите по какому коду обновить товары:</b><br/>
					<input type="radio" name="type_code" id="product_code" value="product_code" checked="checked"/><label for="product_code">По Артиклу</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
					<input type="radio" name="type_code" id="corsini_code" value="corsini_code"/><label for="corsini_code">По коду Корсини</label>
				</p>-->
				<input type="submit" name="'.$update_price.'" value="Старт" />
				</p>
			</form>
			'.$msg_update_price.'
		</div>';
		
		$view->js('admin/jquery.cookie');
		$view->js_on_load[] = "
			$('#services').click(function(){
				count_alert = $.cookie('count_alert');
				if( count_alert === null )
				{
					$.cookie( 'count_alert' , 1 , { path: '/' } );
					alert('".$alert."');
				}
				else if( parseInt( count_alert ) < 3 ) 
				{
					alert('".$alert."');
					$.cookie( 'count_alert' , parseInt( count_alert ) + 1, { path: '/' } );
				}
			});
		";
	
//------Обновление слубной информации у товаров (конец)


//------Импорт товаров

	$fine_name = 'import_product';  // Название post файла для обновления прайса
	if( checkCameCsvFile( $fine_name ) )  // Если пришел файл для обновления, то стартуем
		$info_import = startImportProduct( $fine_name );

	$pr_import_html = '
		<div class="export-xml">
			<h2>Импорт товаров</h2>
			<div class="main_span_info">
				<span class="span_info">Правила по структуре загружаемого csv файла...</span>
				<div class="div_info">
					Кодировка - "Юникод (UTF-8)<br />
					Разделитель поля - ;<br />
					Разедитель текста - "<br />
					Если оставить значение какого-либо поля пустым, то данное значение в БД остается неизменным.<br />
					<b>Очередность полей должна соблюдаться всегда слудеющей:</b><br/>
					<ol type="A"><b>
						<li>Код</li>
						<li>Главная категория</li>
						<li>Конечная категория</li>
						<li>Префикс</li>
						<li>Марка</li>
						<li>Название</li>
						<li>Цена</li>
						<li>ПП</li>
						<li>Габаритность</li>
						<li>С этого столбца начинаются характеристики</li></b>
					</ol>
					Пример: если нужно обновить Габаритность, то остальные столбцы, находящиеся до него, должны всегда существовать, хоть и пустые.<br />
					1. Если указать букву <b>n</b> во второй столбец, то товар удалится навсегда.<br/>
					2. Если указать значение 0 в поле Габаритность, то данная услуга отобразятся как Бесплатно.<br/>
					<b>После отработки скрипта обновлять файла для Яндек.Маркет не обязательно - это происходит автоматически.</b>
				</div>
			</div>
			<form  ENCTYPE="multipart/form-data" action="" method="POST">
				<p><input type="file" name="'.$fine_name.'"></p>
				<input type="submit" name="'.$fine_name.'" value="Начать импорт" />
			</form>
			<p class="green_str">'.$info_import['message'].'</p>
		</div>
		<br/>';
		
//------Импорт товаров		


//------Импорт картинок


		$view->css('uploadify');
		$view->js('admin/jquery.uploadify-3.1.min');
		
		$pr_import_html .= '
		<div class="export-xml">
			<h2>Импорт картинок</h2><br/>
			<p>Поддерживаетя мультизагрузка картинок</p>
			<p><input type="file" name="file_upload" id="file_upload" /></p>
		</div>';

		$view->js_on_load[] = "
			$(function() {
				$('#file_upload').uploadify({
					'buttonText'	: 'ОБЗОР',
					'fileSizeLimit'	: '2MB',
					'fileTypeDesc'	: 'GIF; gif; JGP; jpeg; JPEG; jpg; png; png',
					'fileTypeExts'	: '*.GIF; *.gif; *.JGP; *.jpeg; *.JPEG; *.jpg; *.png; *.png',
					'swf'			: '/inc/src/swf/uploadify.swf',

					'uploader'		: '/admin/?ajax=uploadify'
				});
			});
		";

//------Импорт картинок


//------Экспорт товаров
 
	$html = $link_on_file = '';
	
	if( isset( $_POST['export_products'] ) ) {
		$file_name = getExportProducts();
		startArchive( PATH_TO_FILES.'/'.PATH_TO_ARCHIVE_EXPORT_FILES_DIR.'/'.$file_name.'.zip', PATH_TO_FILES.'/'.PATH_TO_ARCHIVE_EXPORT_FILES_DIR.'/'.$file_name.'.csv', $file_name.'.csv' );
		unlink( PATH_TO_FILES.'/'.PATH_TO_ARCHIVE_EXPORT_FILES_DIR.'/'.$file_name.'.csv' );
		$link_on_file = '<a href="/admin/?get_export_file='.$file_name.'.zip" target="_blank">Забрать файл</a>';
	}
	
	$export_cat = isset( $_POST['export_cat'] ) ? $_POST['export_cat'] : array();
	
	$view->js('admin/video');
	$view->css('jQuery.Tree');
	$view->js('jQuery.Tree');	
	
	$conn->query( 'SELECT id, templ, parents, title FROM pages WHERE templ IN( "category", "sub_category" )');
	while( $row = $conn->fetch() )
		$navi[$row->templ][( $row->parents ? $row->parents : 'n' )][] = $row;

		
		$html .= '<ul id="tree">';
		foreach( $navi['category']['n'] as $main_cat ) 
		{
			$html .= '<li><label><input type="checkbox"/>'.$main_cat->title.'</label>';
 			if( isset( $navi['sub_category']['#'.$main_cat->id.'#'] ) )
			{
				$html .= '<ul>';
				foreach( $navi['sub_category']['#'.$main_cat->id.'#'] as $cat )
				{
					$html .= '<li><label><input name="export_cat['.$cat->id.']" type="checkbox"'.( isset($export_cat[$cat->id] ) ? ' checked="checked"' : '' ).'/>'.$cat->title.'</label>';
					if( isset( $navi['sub_category']['#'.$main_cat->id.'##'.$cat->id.'#'] ) )
					{
 						$html .= '<ul>';
						foreach( $navi['sub_category']['#'.$main_cat->id.'##'.$cat->id.'#'] as $sub_cat )
						{
							$html .= '<li><label><input name="export_cat['.$sub_cat->id.']" type="checkbox"'.( isset($export_cat[$sub_cat->id] ) ? ' checked="checked"' : '' ).'/>'.$sub_cat->title.'</label></li>';
						}
						$html .= '</ul>';
					}
					$html .= '</li>';
				}
				$html .= '</ul>';
			}
			$html .= '</li>';
		}
		$html .= '</ul>';
		
/* 	
	foreach( $navi['category']['n'] as $main_cat ) {
	// $elog->add( $main_cat->id );
		$html .= '<div class="main_cat">';
		$html .= '	<input id="'.$main_cat->id.'" type="checkbox" class="main_check" '.( isset( $export_cat[$main_cat->id] ) ? 'checked' : '' ).'/>
					<span class="cat main_span" id="'.$main_cat->id.'">'.$main_cat->title.'</span><br/>' ;
					
		$html .= '<div class="main_cat main_div" id="div'.$main_cat->id.'">';
		
		if( isset( $navi['sub_category']['#'.$main_cat->id.'#'] ) )
			foreach( $navi['sub_category']['#'.$main_cat->id.'#'] as $cat )
			{
				$html .= '	<input name="export_cat['.$cat->id.']" id="'.$cat->id.'" type="checkbox" class="sub_sub check" '.( isset( $export_cat[$cat->id] ) ? 'checked="checked"' : '' ).'/>
							<span class="cat sub_span" id="'.$cat->id.'">'.$cat->title.'</span><br/>' ;

				if( isset( $navi['sub_category']['#'.$main_cat->id.'##'.$cat->id.'#'] ) )
				{
					$html .= '<div class="sub_div" id="div'.$cat->id.'">';
					foreach( $navi['sub_category']['#'.$main_cat->id.'##'.$cat->id.'#'] as $sub_cat ) {
						$html .= '	<input name="export_cat['.$sub_cat->id.']" id="'.$sub_cat->id.'" type="checkbox" class="sub_sub_sub sub_'.$cat->id.'" '.( isset( $export_cat[$sub_cat->id] ) ? 'checked="checked"' : '' ).'/><label for="'.$sub_cat->id.'" >'.$sub_cat->title.'</label><br/>' ;
					}
					$html .= '</div>';
				}
			}
		$html .= '</div>';
		$html .= '</div>';
	}
 */
	
	$pr_export_html =
					'<div class="export-xml">
						<h2>Экспорт товаров</h2>
						<form ENCTYPE="multipart/form-data" action="" method="POST">
							<div class="cat_navi">'.$html.'</div>
							<p>Выгрузить определенные товары по артиклям (первым столбцом) или по названиям (вторым столбцом) при помощи CSV файла:<br/><input type="file" name="csv_export_products" /></p>
							<p>
								<input type="checkbox" name="with_service" id="with_service" value="on" checked /><label for="with_service"> Со служебками</label><br/>
								<input type="checkbox" name="with_char" id="ch_with_char" value="on" /><label for="ch_with_char"> С характеристиками</label>
							</p>
							<input type="submit" name="export_products" value="Старт" />
						</form>
						<br/>'.$link_on_file.'
					</div>';
  
//------Экспорт товаров (конец)


//------Обновление кэша и XML и архивация XML и CSV
 	$xml_errors = '';
	if( isset( $_POST['reset_cache'] ) || isset( $_POST['get_xml'] ) || count( $info_import['codes'] ) )
	{
		if(!empty($info_import['codes'])) updateIndexesTableProducts( $info_import['codes'] ); 		// Обновление кеша
		$xml_errors = updateXmlFiles();								// Обновление XML
		$date = date("Y-m-d-H-i-s");
		createXmlArchives( $date );									// Архивация XML
		createCsvArchives( $date, PATH_TO_ARCHIVE_CSV_DIR );		// Архивация CSV
	}

//------Обновление кэша и XML (конец)


//------Экспорт товаров в XML

	global $xml_prices;
	$export_xml_html = '';
	
	foreach( $xml_prices as $price )
	{
		if( $price['avaliable'] )
		{
			$info = getFileData( PATH_TO_INC_DIR.'/'.$price['file'] );
			$export_xml_html .= '
				<div class="export-xml">
					<b>'.$price['title'].'</b><br/>
					Товаров: '.$info['count_pr'].'.	Вес файла: '.$info['size'].' КБ. Обновлен: '.$info['mtime'].'<br/>
					Ссылка: <a href="/../inc/'.$price['file'].'" target="_blank">'.HOST_NAME.'/'.PATH_TO_INC_FROM_ROOT_DIR.'/'.$price['file'].'</a>
				</div>';
		}
	}
				
//------ Экспорт товаров в XML (конец)




 	function getFileData( $file )   // Получить данные xml файла
	{
		$info = array( 'size' => '0' , 'mtime' => '?', 'count_pr' => 0 );
		if( file_exists( $file ) )
		{
			$info = array(
				'size'		=> (string) round( filesize( $file ) / 1024 ),
				'mtime'		=> date( 'Y.m.j H:i:s' , filemtime( $file ) ),
				'count_pr'	=> substr_count( myIconv( file_get_contents( $file ), 'wu' ), '</offer>' )
			);
		}
		return $info;
	}

 	function checkCameCsvFile( $fine_name )  // Проверка пришел ли файл. Если пришел, то проверяем его вес и формат
	{ 
		if( isset( $_FILES[$fine_name]["error"] ) && $_FILES[$fine_name]["error"] == 0 ) {
			$ext = substr( $_FILES[$fine_name]['name'] , 1 + strrpos( $_FILES[$fine_name]['name'] , '.' ) );
			if ( $ext != 'csv' ) exit ('Пожалуйста, загрузите файл в формате csv');
			if ( $_FILES[$fine_name]['size'] > 112288000 ) exit ('Пожалуйста, загрузите файл не выше 2х Мегабайт');
			return true;
		}
		else{
			return false;
		}
	}


	$sel_export_pr 				= ( isset( $_POST['export_products'] ) || !count( $_POST ) )	? ' selected' : '';
	$sel_import_pr				= isset( $_POST['import_product'] )								? ' selected' : ''; 
	$sel_update_price			= isset( $_POST['update_price'] )								? ' selected' : ''; 
	$sel_export_xml_pr			= isset( $_POST['get_xml'] )									? ' selected' : ''; 
	
	$present_html 			= $load->block('mytable_editor', array('table_name'=>'product_presents', 'main_column'=>'product_code'));
	$new_year_html 			= $load->block('mytable_editor', array('table_name'=>'ny_promo_products', 'main_column'=>'product_code'));
	
	$view->gText .= '
					<section class="page">
						<dl class="global-tabs">
							<dt class="global-tabs__title'.$sel_export_pr.'">Экспорт</dt>
							<dd class="global-tabs__content'.$sel_export_pr.'">
								<div class="global-tabs__content__inner">
									<form action="" method="POST"><input type="submit" name="reset_cache" value="Сбросить кэш" /></form>
									<p>'.$pr_export_html.'</p>
								</div>	
							</dd>
							<dt class="global-tabs__title'.$sel_import_pr.'">Импорт</dt>
							<dd class="global-tabs__content'.$sel_import_pr.'">
								<div class="global-tabs__content__inner">
									<p>'.$pr_import_html.'</p>
								</div>	
							</dd>
							<dt class="global-tabs__title'.$sel_update_price.'" id="services">Служебки 2</dt>
							<dd class="global-tabs__content'.$sel_update_price.'">
								<div class="global-tabs__content__inner">
									<p>'.$pr_update_price_html.'</p>
								</div>	
							</dd>
							<dt class="global-tabs__title'.$sel_export_xml_pr.'">XML</dt>
							<dd class="global-tabs__content'.$sel_export_xml_pr.'">
								<div class="global-tabs__content__inner">
									<br/><h2 class="global-title">Экспорт товаров в XML</h2>
									<p>'.$export_xml_html.'</p>
									<form action=""  method="post"><input type="submit" name="get_xml" value="Старт" /></form>
									'.$xml_errors.'
								</div>	
							</dd>
							
							<dt class="global-tabs__title">Подарки</dt>
							<dd class="global-tabs__content">
								<div class="global-tabs__content__inner">
									<h2 class="global-title">Подарки</h2>
									'.$present_html.'
								</div>	
							</dd>
							<!--
							<dt class="global-tabs__title">НГ промо</dt>
							<dd class="global-tabs__content">
								<div class="global-tabs__content__inner">
									<h2 class="global-title">Подарки</h2>
									'.$new_year_html.'
								</div>	
							</dd>
							-->
						</dl>		
					</section>';
